<?php

namespace app\admin\model;

use think\Model;
use Illuminate\Support\Collection;

/**
 *  客服
 *
 *  @property int $id               客服id
 *  @property string $service_name  客服所属
 *  @property string $user_name     客服名称
 *  @property string $user_pwd      客服登录密码
 *  @property string $user_avatar   客服头像
 *  @property int $status           用户状态
 *  @property int $online           是否在线
 *  @property int $group_id         所属分组id
 *  @property string $openid        微信用户id
 *  @property int $role             客服角色,1客服 2门店 3销售 4部门
 *  @property int $superior_id      上级id
 *  @property Service $superior     上级领导
 *  @property Collection $children  下级部门
 */
class Service extends Model
{
    protected $table = 'ws_services';
    protected $hidden = ['user_pwd'];
    /** 门店 */
    const ROLE_SHOP = 1;
    /** 销售老师 */
    const ROLE_MARKET = 2;
    /** 事业中心 */
    const ROLE_DEPARTMENT = 3;
    /** 客服 */
    const ROLE_SERVICE = 4;
    /** 管理员 */
    const ROLE_ADMIN = 5;

    /** 启用 */
    const STATUS_ENABLE = 1;
    /** 禁用 */
    const STATUS_DISABLE = 2;

    const ROLES_MAP = [
        self::ROLE_SHOP => '门店',
        self::ROLE_MARKET => '销售老师',
        self::ROLE_DEPARTMENT => '事业中心',
        self::ROLE_SERVICE => '客服',
        self::ROLE_ADMIN => '管理员',
    ];

    /**
     * 上级
     *
     * @return \think\model\relation\BelongsTo
     */
    public function superior()
    {
        return $this->belongsTo(Service::class, 'superior_id', 'id');
    }

    /**
     * 下级
     *
     * @return \think\model\relation\HasMany
     */
    public function children()
    {
        return $this->hasMany(Service::class, 'superior_id', 'id');
    }
}
